{
 "cells": [
  {
   "cell_type": "markdown",
   "source": [
    "## Exploratory Data Analysis\n",
    "为什么做：了解数据、产生直觉，甚至可以人眼看出公式（不行也可以作为启发式）\n",
    "方法：\n",
    "库："
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%% md\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import seaborn as sn"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "outputs": [],
   "source": [],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "                             title  author  \\\n",
      "0          [377, 491, 883, 2, 144]     107   \n",
      "1     [532, 101, 34, 79, 1832, 42]     107   \n",
      "2        [1579, 1650, 321, 8, 216]     107   \n",
      "3               [287, 13, 249, 82]     107   \n",
      "4  [616, 400, 446, 937, 1123, 193]     107   \n",
      "\n",
      "                                             content  \n",
      "0  [358, 328, 756, 377, 657, 0, 1899, 877, 959, 3...  \n",
      "1  [465, 164, 322, 18, 1216, 0, 522, 237, 676, 11...  \n",
      "2  [1579, 1650, 321, 8, 216, 0, 646, 796, 249, 10...  \n",
      "3  [608, 18, 111, 699, 395, 0, 1358, 1145, 320, 1...  \n",
      "4  [982, 711, 590, 147, 520, 0, 4312, 1085, 809, ...  \n"
     ]
    },
    {
     "data": {
      "text/plain": "             author\ncount  42014.000000\nmean     166.289213\nstd      381.748356\nmin        0.000000\n25%       13.000000\n50%       43.000000\n75%      119.000000\nmax     2631.000000",
      "text/html": "<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>author</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>count</th>\n      <td>42014.000000</td>\n    </tr>\n    <tr>\n      <th>mean</th>\n      <td>166.289213</td>\n    </tr>\n    <tr>\n      <th>std</th>\n      <td>381.748356</td>\n    </tr>\n    <tr>\n      <th>min</th>\n      <td>0.000000</td>\n    </tr>\n    <tr>\n      <th>25%</th>\n      <td>13.000000</td>\n    </tr>\n    <tr>\n      <th>50%</th>\n      <td>43.000000</td>\n    </tr>\n    <tr>\n      <th>75%</th>\n      <td>119.000000</td>\n    </tr>\n    <tr>\n      <th>max</th>\n      <td>2631.000000</td>\n    </tr>\n  </tbody>\n</table>\n</div>"
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df = pd.read_json('数字化全唐诗.json')\n",
    "print(df.head())\n",
    "df.describe()"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(42014, 3)\n"
     ]
    },
    {
     "data": {
      "text/plain": "title      object\nauthor      int64\ncontent    object\ndtype: object"
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "print(df.shape)\n",
    "df.dtypes"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "outputs": [
    {
     "data": {
      "text/plain": "title      object\nauthor      int32\ncontent    object\ndtype: object"
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df['author'] = df['author'].astype(int)\n",
    "df.dtypes"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "outputs": [
    {
     "data": {
      "text/plain": "                             title  author  \\\n0          [377, 491, 883, 2, 144]     107   \n1     [532, 101, 34, 79, 1832, 42]     107   \n2        [1579, 1650, 321, 8, 216]     107   \n3               [287, 13, 249, 82]     107   \n4  [616, 400, 446, 937, 1123, 193]     107   \n\n                                             content  \n0  [358, 328, 756, 377, 657, 0, 1899, 877, 959, 3...  \n1  [465, 164, 322, 18, 1216, 0, 522, 237, 676, 11...  \n2  [1579, 1650, 321, 8, 216, 0, 646, 796, 249, 10...  \n3  [608, 18, 111, 699, 395, 0, 1358, 1145, 320, 1...  \n4  [982, 711, 590, 147, 520, 0, 4312, 1085, 809, ...  ",
      "text/html": "<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>title</th>\n      <th>author</th>\n      <th>content</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>0</th>\n      <td>[377, 491, 883, 2, 144]</td>\n      <td>107</td>\n      <td>[358, 328, 756, 377, 657, 0, 1899, 877, 959, 3...</td>\n    </tr>\n    <tr>\n      <th>1</th>\n      <td>[532, 101, 34, 79, 1832, 42]</td>\n      <td>107</td>\n      <td>[465, 164, 322, 18, 1216, 0, 522, 237, 676, 11...</td>\n    </tr>\n    <tr>\n      <th>2</th>\n      <td>[1579, 1650, 321, 8, 216]</td>\n      <td>107</td>\n      <td>[1579, 1650, 321, 8, 216, 0, 646, 796, 249, 10...</td>\n    </tr>\n    <tr>\n      <th>3</th>\n      <td>[287, 13, 249, 82]</td>\n      <td>107</td>\n      <td>[608, 18, 111, 699, 395, 0, 1358, 1145, 320, 1...</td>\n    </tr>\n    <tr>\n      <th>4</th>\n      <td>[616, 400, 446, 937, 1123, 193]</td>\n      <td>107</td>\n      <td>[982, 711, 590, 147, 520, 0, 4312, 1085, 809, ...</td>\n    </tr>\n  </tbody>\n</table>\n</div>"
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df[:][0:5]"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "outputs": [
    {
     "data": {
      "text/plain": "<AxesSubplot:ylabel='Frequency'>"
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "text/plain": "<Figure size 432x288 with 1 Axes>",
      "image/png": "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\n"
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "df['author'].plot.hist(bins=24, alpha=0.5, )# 当然是这样，我排过序的。\n"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "markdown",
   "source": [],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%% md\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "                                             content\n",
      "0  [358, 328, 756, 377, 657, 0, 1899, 877, 959, 3...\n",
      "1  [465, 164, 322, 18, 1216, 0, 522, 237, 676, 11...\n",
      "2  [1579, 1650, 321, 8, 216, 0, 646, 796, 249, 10...\n",
      "3  [608, 18, 111, 699, 395, 0, 1358, 1145, 320, 1...\n",
      "4  [982, 711, 590, 147, 520, 0, 4312, 1085, 809, ...\n"
     ]
    },
    {
     "data": {
      "text/plain": "0    107\n1    107\n2    107\n3    107\n4    107\nName: author, dtype: int32"
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Data = df[['content']] # 我觉得可以实验一下：单独使用标题的准确率和单独使用content的准确率，确定关系。\n",
    "Label = df['author']\n",
    "print(Data.head())\n",
    "Label.head()"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "markdown",
   "source": [],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%% md\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "outputs": [
    {
     "data": {
      "text/plain": "<Figure size 432x288 with 4 Axes>",
      "image/png": "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\n"
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "def draw(start = 0, step=5):\n",
    "    a, b = start, start+step\n",
    "    for plot_position in [221, 222, 223, 224]:\n",
    "        plt.subplot(plot_position)\n",
    "        plt.plot(filter_values[a:b], poets[a:b])\n",
    "        a, b = b, b+step\n",
    "draw(10, 150)"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "outputs": [
    {
     "data": {
      "text/plain": "<Figure size 432x288 with 4 Axes>",
      "image/png": "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\n"
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "draw(0, 10)"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "outputs": [
    {
     "data": {
      "text/plain": "<Figure size 432x288 with 4 Axes>",
      "image/png": "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\n"
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "draw(0, 20)"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "outputs": [
    {
     "data": {
      "text/plain": "<Figure size 432x288 with 4 Axes>",
      "image/png": "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\n"
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "draw(40, 20)"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "outputs": [],
   "source": [
    "import numpy as np"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "outputs": [
    {
     "data": {
      "text/plain": "array([False, False, False, ...,  True, False, False])"
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 去除掉不出名的诗人\n",
    "assert len(data)==len(label)\n",
    "is_famous = np.zeros(len(label))\n",
    "for i, 诗人 in enumerate(label):\n",
    "    if a[诗人]>95: #排名前100诗人\n",
    "        is_famous[i] = 1\n",
    "is_famous.astype(bool)\n",
    "# data, label = data[is_famous], label[is_famous] # 居然不行？"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "outputs": [
    {
     "data": {
      "text/plain": "[358,\n 328,\n 756,\n 377,\n 657,\n 0,\n 1899,\n 877,\n 959,\n 355,\n 68,\n 1,\n 931,\n 496,\n 94,\n 292,\n 168,\n 0,\n 196,\n 193,\n 4,\n 1881,\n 225,\n 1,\n 274,\n 4260,\n 305,\n 652,\n 223,\n 0,\n 106,\n 430,\n 1066,\n 866,\n 375,\n 1,\n 21,\n 13,\n 231,\n 1124,\n 528,\n 0,\n 18,\n 122,\n 86,\n 931,\n 406,\n 1,\n 466,\n 1602,\n 618,\n 748,\n 1970,\n 0,\n 1234,\n 210,\n 996,\n 1135,\n 1460,\n 1,\n 78,\n 1679,\n 1337,\n 172,\n 585,\n 0,\n 71,\n 1953,\n 953,\n 345,\n 2604,\n 1,\n 426,\n 1945,\n 316,\n 747,\n 1504,\n 0,\n 2404,\n 2858,\n 1178,\n 116,\n 3,\n 1,\n 288,\n 50,\n 809,\n 1499,\n 222,\n 0,\n 1454,\n 1971,\n 430,\n 1596,\n 1753,\n 1,\n 452,\n 456,\n 86,\n 544,\n 131,\n 0,\n 1107,\n 915,\n 1616,\n 400,\n 440,\n 1,\n 1076,\n 1301,\n 1209,\n 58,\n 29,\n 0,\n 2165,\n 101,\n 524,\n 110,\n 1760,\n 1,\n 311,\n 388,\n 84,\n 375,\n 604,\n 0,\n 558,\n 569,\n 322,\n 766,\n 1341,\n 1,\n 2166,\n 718,\n 895,\n 74,\n 509,\n 0,\n 513,\n 737,\n 809,\n 546,\n 1488,\n 1,\n 348,\n 1612,\n 249,\n 169,\n 686,\n 0,\n 1732,\n 351,\n 476,\n 264,\n 395,\n 1,\n 766,\n 753,\n 582,\n 409,\n 604,\n 0,\n 52,\n 72,\n 594,\n 25,\n 134,\n 1,\n 649,\n 345,\n 1047,\n 28,\n 1058,\n 0,\n 511,\n 279,\n 667,\n 120,\n 818,\n 1,\n 55,\n 737,\n 556,\n 1393,\n 96,\n 0,\n 1171,\n 573,\n 138,\n 127,\n 2129,\n 1,\n 264,\n 1162,\n 1006,\n 1033,\n 1375,\n 0,\n 868,\n 836,\n 424,\n 74,\n 912,\n 1,\n 592,\n 800,\n 357,\n 223,\n 20,\n 0,\n 310,\n 904,\n 652,\n 21,\n 837,\n 1,\n 122,\n 439,\n 522,\n 231,\n 567,\n 0,\n 30,\n 203,\n 41,\n 581,\n 1049,\n 1,\n 27,\n 49,\n 2474,\n 2042,\n 520,\n 0,\n 100,\n 233,\n 718,\n 884,\n 220,\n 1,\n 106,\n 917,\n 55,\n 264,\n 313,\n 0,\n 408,\n 1997,\n 165,\n 304,\n 932,\n 1,\n 1591,\n 207,\n 13,\n 649,\n 415,\n 0,\n 811,\n 67,\n 157,\n 18,\n 659,\n 1,\n 480,\n 1780,\n 152,\n 19,\n 328,\n 0,\n 604,\n 72,\n 1192,\n 34,\n 2069,\n 1,\n 297,\n 722,\n 1869,\n 237,\n 173,\n 0,\n 138,\n 39,\n 476,\n 440,\n 218,\n 1,\n 84,\n 13,\n 307,\n 528,\n 714,\n 0,\n 119,\n 915,\n 23,\n 126,\n 217,\n 1,\n 34,\n 122,\n 397,\n 189,\n 273,\n 0,\n 678,\n 29,\n 1002,\n 268,\n 561,\n 1,\n 3203,\n 2485,\n 1313,\n 447,\n 98,\n 0,\n 111,\n 600,\n 602,\n 21,\n 783,\n 1,\n 484,\n 223,\n 1104,\n 1124,\n 387,\n 0,\n 52,\n 18,\n 613,\n 78,\n 108,\n 1,\n 476,\n 169,\n 170,\n 745,\n 226,\n 0,\n 264,\n 1162,\n 587,\n 127,\n 537,\n 1,\n 78,\n 114,\n 683,\n 21,\n 2678,\n 0,\n 408,\n 4680,\n 457,\n 931,\n 793,\n 1,\n 94,\n 542,\n 289,\n 1044,\n 653,\n 0,\n 4,\n 1634,\n 2307,\n 71,\n 128,\n 1,\n 51,\n 761,\n 126,\n 1244,\n 236,\n 0,\n 546,\n 190,\n 268,\n 820,\n 1623,\n 1,\n 641,\n 335,\n 476,\n 718,\n 300,\n 0,\n 9,\n 16,\n 113,\n 1702,\n 1818,\n 1,\n 303,\n 931,\n 812,\n 92,\n 496,\n 0,\n 2121,\n 264,\n 2701,\n 3046,\n 918,\n 1,\n 968,\n 452,\n 365,\n 287,\n 320,\n 0,\n 1096,\n 642,\n 29,\n 189,\n 997,\n 1,\n 15,\n 549,\n 20,\n 674,\n 1831,\n 0,\n 454,\n 50,\n 288,\n 242,\n 182,\n 1,\n 270,\n 737,\n 165,\n 430,\n 591,\n 0,\n 414,\n 154,\n 115,\n 34,\n 639,\n 1,\n 953,\n 3,\n 1417,\n 95,\n 1314,\n 0,\n 1613,\n 1941,\n 292,\n 710,\n 402,\n 1,\n 102,\n 135,\n 911,\n 2807,\n 1397,\n 0,\n 1426,\n 87,\n 408,\n 496,\n 791,\n 1,\n 7,\n 65,\n 1260,\n 54,\n 837,\n 0,\n 375,\n 46,\n 1812,\n 913,\n 1020,\n 1,\n 334,\n 26,\n 2573,\n 895,\n 1361,\n 0,\n 249,\n 1221,\n 93,\n 1143,\n 1014,\n 1,\n 1986,\n 1123,\n 2541,\n 1283,\n 1402,\n 0,\n 58,\n 1826,\n 2176,\n 2108,\n 718,\n 1,\n 14,\n 11,\n 895,\n 170,\n 1288,\n 0,\n 10,\n 8,\n 209,\n 149,\n 1029,\n 1,\n 791,\n 431,\n 2590,\n 510,\n 1892,\n 0,\n 138,\n 1893,\n 21,\n 284,\n 969,\n 1]"
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.array(data[0]).shape\n",
    "data[0][0]"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[603, 241, 899, 1686, 0, 169, 335, 809, 457, 1, 129, 398, 136, 312, 0, 355, 2310, 382, 344, 1, 288, 530, 59, 26, 0, 382, 58, 1433, 242, 1, 2787, 154, 1869, 20, 0, 1561, 815, 49, 24, 1], [172, 220, 1841, 172, 172, 117, 106, 0, 172, 332, 123, 26, 26, 6, 1302, 1, 220, 111, 26, 223, 184, 161, 65, 0, 39, 609, 1935, 19, 4, 328, 31, 0, 28, 82, 50, 121, 177, 69, 36, 1]]\n"
     ]
    },
    {
     "data": {
      "text/plain": "[92, 63]"
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "new_data, new_label = [], []\n",
    "for i in range(len(label)):\n",
    "    if(is_famous[i]):\n",
    "        # new_data.append(np.array(data[i][0], dtype=int))\n",
    "        # new_label.append(np.array(label[i], dtype=int))\n",
    "        new_data.append(data[i][0])\n",
    "        new_label.append(label[i])\n",
    "assert len(new_data) == len(new_label)\n",
    "len(new_data)\n",
    "print(new_data[0:2])\n",
    "new_label[0:2]"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 194,
   "outputs": [],
   "source": [],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "outputs": [
    {
     "data": {
      "text/plain": "['，',\n '。',\n '十',\n '卷',\n '百',\n '一',\n '不',\n '人',\n '三',\n '二',\n '四',\n '五',\n '山',\n '日',\n '六',\n '無',\n '八',\n '七',\n '風',\n '中',\n '上',\n '雲',\n '有',\n '九',\n '春',\n '白',\n '天',\n '何',\n '來',\n '月',\n '花',\n '水',\n '時',\n '相',\n '長',\n '君',\n '歸',\n '秋',\n '年',\n '為',\n '生',\n '自',\n '行',\n '江',\n '見',\n '夜',\n '心',\n '知',\n '李',\n '如',\n '此',\n '得',\n '清',\n '下',\n '高',\n '去',\n '南',\n '空',\n '明',\n '在',\n '子',\n '門',\n '事',\n '客',\n '送',\n '道',\n '未',\n '處',\n '居',\n '東',\n '別',\n '金',\n '歌',\n '王',\n '多',\n '青',\n '是',\n '寒',\n '玉',\n '城',\n '雨',\n '遠',\n '朝',\n '家',\n '落',\n '新',\n '出',\n '今',\n '與',\n '西',\n '應',\n '寄',\n '陽',\n '思',\n '千',\n '前',\n '聲',\n '入',\n '書',\n '路',\n '萬',\n '馬',\n '望',\n '草',\n '我',\n '同',\n '飛',\n '深',\n '樹',\n '和',\n '流',\n '開',\n '將',\n '盡',\n '酒',\n '獨',\n '還',\n '已',\n '聞',\n '回',\n '成',\n '地',\n '煙',\n '光',\n '詩',\n '公',\n '重',\n '可',\n '石',\n '誰',\n '色',\n '林',\n '欲',\n '從',\n '雪',\n '古',\n '作',\n '州',\n '方',\n '向',\n '更',\n '之',\n '：',\n '海',\n '首',\n '樓',\n '看',\n '舊',\n '老',\n '易',\n '張',\n '情',\n '滿',\n '身',\n '然',\n '後',\n '愁',\n '香',\n '名',\n '過',\n '言',\n '黃',\n '衣',\n '能',\n '外',\n '遊',\n '頭',\n '平',\n '起',\n '樂',\n '難',\n '塵',\n '龍',\n '曲',\n '裏',\n '大',\n '安',\n '莫',\n '紅',\n '北',\n '華',\n '松',\n '仙',\n '閑',\n '分',\n '故',\n '複',\n '到',\n '似',\n '初',\n '懷',\n '晚',\n '少',\n '宮',\n '葉',\n '猶',\n '離',\n '當',\n '零',\n '竹',\n '氣',\n '意',\n '題',\n '鳥',\n '柳',\n '贈',\n '因',\n '間',\n '劉',\n '非',\n '文',\n '辭',\n '亦',\n '吟',\n '元',\n '國',\n '邊',\n '暮',\n '所',\n '幾',\n '池',\n '夢',\n '留',\n '漢',\n '孤',\n '餘',\n '逢',\n '問',\n '溪',\n '寺',\n '庭',\n '隱',\n '杜',\n '里',\n '士',\n '—',\n '陰',\n '河',\n '醉',\n '野',\n '隨',\n '物',\n '神',\n '關',\n '世',\n '登',\n '歲',\n '枝',\n '幽',\n '臨',\n '微',\n '泉',\n '坐',\n '露',\n '使',\n '若',\n '終',\n '發',\n '期',\n '小',\n '宿',\n '休',\n '經',\n '鄉',\n '芳',\n '好',\n '霜',\n '台',\n '輕',\n '憶',\n '以',\n '至',\n '早',\n '碧',\n '連',\n '陵',\n '綠',\n '半',\n '波',\n '鶴',\n '太',\n '郎',\n '才',\n '官',\n '亭',\n '先',\n '共',\n '正',\n '對',\n '合',\n '者',\n '近',\n '尋',\n '曾',\n '吹',\n '照',\n '舟',\n '豈',\n '兩',\n '曉',\n '夕',\n '常',\n '影',\n '羅',\n '翠',\n '遙',\n '楚',\n '雙',\n '苦',\n '須',\n '峰',\n '驚',\n '主',\n '園',\n '沙',\n '殘',\n '斷',\n '師',\n '僧',\n '楊',\n '動',\n '靜',\n '悲',\n '木',\n '垂',\n '景',\n '興',\n '卻',\n '川',\n '病',\n '恩',\n '紫',\n '德',\n '吳',\n '奉',\n '章',\n '堂',\n '湖',\n '靈',\n '又',\n '語',\n '絕',\n '久',\n '依',\n '真',\n '鳳',\n '蕭',\n '女',\n '鳴',\n '浮',\n '笑',\n '聽',\n '吾',\n '魚',\n '蒼',\n '皇',\n '忽',\n '通',\n '秦',\n '尚',\n '唯',\n '府',\n '車',\n '丹',\n '甫',\n '星',\n '憐',\n '傳',\n '愛',\n '詠',\n '齊',\n '群',\n '淚',\n '侍',\n '郊',\n '虛',\n '田',\n '帝',\n '游',\n '數',\n '夫',\n '寂',\n '聖',\n '許',\n '昔',\n '會',\n '且',\n '閣',\n '雁',\n '舞',\n '句',\n '只',\n '令',\n '轉',\n '堪',\n '節',\n '洞',\n '散',\n '其',\n '恨',\n '武',\n '軍',\n '往',\n '謝',\n '窮',\n '親',\n '疏',\n '征',\n '蘭',\n '朱',\n '直',\n '胡',\n '說',\n '涼',\n '悠',\n '亂',\n '用',\n '感',\n '始',\n '度',\n '容',\n '桃',\n '火',\n '洛',\n '信',\n '遲',\n '韋',\n '覺',\n '窗',\n '韓',\n '觀',\n '待',\n '賢',\n '足',\n '禦',\n '燕',\n '手',\n '畫',\n '傷',\n '霞',\n '宴',\n '晴',\n '死',\n '喜',\n '勝',\n '學',\n '功',\n '琴',\n '劍',\n '皆',\n '暗',\n '酬',\n '移',\n '顧',\n '即',\n '雖',\n '步',\n '陳',\n '及',\n '帶',\n '識',\n '崔',\n '結',\n '立',\n '珠',\n '塞',\n '岩',\n '顏',\n '羽',\n '逐',\n '周',\n '都',\n '卿',\n '臥',\n '幹',\n '願',\n '歡',\n '徒',\n '岸',\n '食',\n '桂',\n '兒',\n '命',\n '廟',\n '斜',\n '司',\n '隔',\n '友',\n '含',\n '夏',\n '鏡',\n '京',\n '繞',\n '橫',\n '遺',\n '解',\n '殿',\n '湘',\n '棲',\n '孟',\n '倚',\n '盧',\n '禪',\n '己',\n '絲',\n '雜',\n '浪',\n '憂',\n '兵',\n '美',\n '化',\n '玄',\n '舍',\n '於',\n '杯',\n '乘',\n '諸',\n '貴',\n '荒',\n '陸',\n '跡',\n '定',\n '交',\n '薄',\n '疑',\n '爾',\n '徐',\n '本',\n '闕',\n '藥',\n '越',\n '異',\n '飲',\n '商',\n '求',\n '兼',\n '便',\n '惜',\n '拂',\n '爭',\n '騎',\n '臣',\n '鐘',\n '賦',\n '詞',\n '口',\n '忘',\n '錦',\n '翻',\n '勞',\n '燈',\n '頻',\n '兮',\n '端',\n '郡',\n '著',\n '鄭',\n '眼',\n '啼',\n '飄',\n '守',\n '素',\n '念',\n '蒙',\n '第',\n '迎',\n '孫',\n '映',\n '侯',\n '猿',\n '徑',\n '力',\n '榮',\n '音',\n '苔',\n '任',\n '沉',\n '錢',\n '錫',\n '鄰',\n '遇',\n '參',\n '韻',\n '字',\n '史',\n '圖',\n '赴',\n '良',\n '教',\n '梁',\n '惟',\n '極',\n '橋',\n '他',\n '凝',\n '院',\n '船',\n '冷',\n '戰',\n '閒',\n '軒',\n '由',\n '引',\n '禮',\n '弦',\n '永',\n '稀',\n '衰',\n '條',\n '報',\n '折',\n '蓮',\n '悵',\n '搖',\n '住',\n '載',\n '幸',\n '況',\n '罷',\n '目',\n '村',\n '暖',\n '貧',\n '制',\n '細',\n '息',\n '歎',\n '壁',\n '嶺',\n '偏',\n '原',\n '裴',\n '蓬',\n '怨',\n '滄',\n '但',\n '鼓',\n '臺',\n '齋',\n '想',\n '蜀',\n '建',\n '掩',\n '緣',\n '偶',\n '魂',\n '持',\n '內',\n '論',\n '彩',\n '取',\n '漸',\n '接',\n '禹',\n '宜',\n '眠',\n '梅',\n '宅',\n '暫',\n '舉',\n '洲',\n '變',\n '寶',\n '沈',\n '低',\n '鬢',\n '破',\n '紛',\n '佳',\n '戶',\n '訪',\n '宗',\n '釣',\n '面',\n '懸',\n '房',\n '冰',\n '穀',\n '皎',\n '簾',\n '俗',\n '尊',\n '鶯',\n '泛',\n '封',\n '精',\n '館',\n '片',\n '失',\n '晨',\n '骨',\n '傾',\n '島',\n '業',\n '帆',\n '雞',\n '虎',\n '曹',\n '井',\n '獻',\n '浦',\n '攜',\n '弟',\n '代',\n '傍',\n '吏',\n '枕',\n '鴻',\n '龜',\n '秀',\n '既',\n '丘',\n '土',\n '漁',\n '昏',\n '室',\n '迷',\n '盤',\n '賞',\n '賈',\n '唐',\n '理',\n '必',\n '荊',\n '伴',\n '泥',\n '蟬',\n '承',\n '翁',\n '眉',\n '冥',\n '旅',\n '揚',\n '積',\n '詳',\n '渡',\n '根',\n '茲',\n '冠',\n '氏',\n '源',\n '冬',\n '采',\n '盛',\n '陶',\n '再',\n '籍',\n '仍',\n '機',\n '賓',\n '縣',\n '渾',\n '收',\n '管',\n '蘇',\n '敢',\n '雄',\n '浩',\n '鬥',\n '床',\n '眾',\n '志',\n '英',\n '途',\n '階',\n '全',\n '急',\n '薛',\n '狂',\n '溫',\n '牧',\n '嚴',\n '拜',\n '趙',\n '藏',\n '殊',\n '指',\n '稱',\n '那',\n '最',\n '繁',\n '腸',\n '茫',\n '霧',\n '適',\n '殷',\n '種',\n '融',\n '旗',\n '賀',\n '戎',\n '廣',\n '性',\n '席',\n '竟',\n '比',\n '衡',\n '每',\n '遂',\n '嘉',\n '形',\n '涯',\n '象',\n '閉',\n '哀',\n '烏',\n '修',\n '侵',\n '旌',\n '乃',\n '慚',\n '荷',\n '昭',\n '寥',\n '維',\n '澤',\n '昨',\n '于',\n '列',\n '牛',\n '尺',\n '燭',\n '髮',\n '恐',\n '銀',\n '各',\n '攀',\n '次',\n '津',\n '戴',\n '抱',\n '憑',\n '答',\n '省',\n '被',\n '姚',\n '苑',\n '危',\n '淒',\n '投',\n '桑',\n '筆',\n '莊',\n '曙',\n '郭',\n '惆',\n '調',\n '放',\n '哭',\n '把',\n '集',\n '寧',\n '宵',\n '角',\n '童',\n '貫',\n '喧',\n '屋',\n '降',\n '負',\n '法',\n '計',\n '營',\n '甘',\n '銷',\n '遍',\n '淩',\n '塘',\n '禁',\n '叢',\n '岑',\n '嗟',\n '消',\n '並',\n '夷',\n '縱',\n '濕',\n '谷',\n '輪',\n '昌',\n '菊',\n '駕',\n '招',\n '篇',\n '瑤',\n '驛',\n '毛',\n '沒',\n '淮',\n '潭',\n '廬',\n '鸞',\n '短',\n '兄',\n '嶽',\n '誠',\n '走',\n '幕',\n '漏',\n '斯',\n '點',\n '淺',\n '而',\n '員',\n '勢',\n '宣',\n '程',\n '潮',\n '仁',\n '赤',\n '催',\n '茅',\n '奇',\n '盈',\n '勤',\n '輿',\n '晝',\n '蓋',\n '筵',\n '戲',\n '繡',\n '巴',\n '達',\n '陪',\n '枯',\n '豔',\n '弄',\n '澗',\n '愈',\n '霄',\n '雷',\n '綺',\n '渚',\n '粉',\n '禽',\n '陌',\n '漫',\n '慶',\n '沾',\n '存',\n '瓊',\n '驅',\n '巢',\n '掃',\n '強',\n '肯',\n '淨',\n '妾',\n '妝',\n '峽',\n '叔',\n '俱',\n '籠',\n '披',\n '義',\n '潛',\n '棹',\n '丞',\n '利',\n '壯',\n '益',\n '燒',\n '延',\n '升',\n '避',\n '疾',\n '輝',\n '迢',\n '佩',\n '響',\n '羨',\n '宋',\n '試',\n '爐',\n '遣',\n '銜',\n '□',\n '稹',\n '桐',\n '呈',\n '借',\n '掛',\n '壽',\n '襟',\n '背',\n '奏',\n '權',\n '詔',\n '擬',\n '境',\n '滴',\n '底',\n '也',\n '服',\n '滅',\n '唱',\n '聊',\n '圓',\n '除',\n '威',\n ...]"
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import json\n",
    "with open('中文到整数转换表.json') as f:\n",
    "    j = json.load(f)\n",
    "    # print(j)\n",
    "    整数到中文转换表 = ['' for i in range(len(j))]\n",
    "    for (汉字, 数字) in j.items():\n",
    "        整数到中文转换表[数字] = 汉字\n",
    "整数到中文转换表"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "outputs": [
    {
     "ename": "NameError",
     "evalue": "name 'new_data' is not defined",
     "output_type": "error",
     "traceback": [
      "\u001B[1;31m---------------------------------------------------------------------------\u001B[0m",
      "\u001B[1;31mNameError\u001B[0m                                 Traceback (most recent call last)",
      "Input \u001B[1;32mIn [10]\u001B[0m, in \u001B[0;36m<cell line: 3>\u001B[1;34m()\u001B[0m\n\u001B[0;32m      1\u001B[0m \u001B[38;5;28;01mdef\u001B[39;00m \u001B[38;5;21mdecode_poetry\u001B[39m(num_array):\n\u001B[0;32m      2\u001B[0m     \u001B[38;5;28;01mreturn\u001B[39;00m \u001B[38;5;124m\"\u001B[39m\u001B[38;5;124m\"\u001B[39m\u001B[38;5;241m.\u001B[39mjoin(\u001B[38;5;28mmap\u001B[39m(整数到中文转换表\u001B[38;5;241m.\u001B[39m\u001B[38;5;21m__getitem__\u001B[39m, num_array))\n\u001B[1;32m----> 3\u001B[0m decode_poetry(\u001B[43mnew_data\u001B[49m[\u001B[38;5;241m10\u001B[39m])\n",
      "\u001B[1;31mNameError\u001B[0m: name 'new_data' is not defined"
     ]
    }
   ],
   "source": [
    "def decode_poetry(num_array):\n",
    "    return \"\".join(map(整数到中文转换表.__getitem__, num_array))\n",
    "decode_poetry(new_data[10])"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "outputs": [
    {
     "data": {
      "text/plain": "['白居易',\n '杜甫',\n '李白',\n '齊己',\n '劉禹錫',\n '元稹',\n '李商隱',\n '貫休',\n '韋應物',\n '陸龜蒙',\n '劉長卿',\n '許渾',\n '皎然',\n '杜牧',\n '羅隱',\n '張籍',\n '姚合',\n '錢起',\n '賈島',\n '孟郊',\n '王建',\n '岑參',\n '韓愈',\n '張祜',\n '皮日休',\n '王維',\n '溫庭筠',\n '權德輿',\n '方幹',\n '韋莊',\n '杜荀鶴',\n '盧綸',\n '韓偓',\n '張說',\n '戴叔倫',\n '李中',\n '吳融',\n '李端',\n '薛能',\n '孟浩然',\n '趙嘏',\n '徐鉉',\n '徐夤',\n '皇甫冉',\n '李群玉',\n '李賀',\n '顧況',\n '司空圖',\n '高適',\n '李嶠',\n '李頻',\n '鄭穀',\n '黃滔',\n '施肩吾',\n '周曇',\n '張九齡',\n '宋之問',\n '武元衡',\n '鮑溶',\n '耿湋',\n '李益',\n '儲光羲',\n '司空曙',\n '沈佺期',\n '王昌齡',\n '柳宗元',\n '馬戴',\n '朱慶餘',\n '張喬',\n '李洞',\n '唐彥謙',\n '韓翃',\n '胡曾',\n '楊巨源',\n '曹松',\n '羅鄴',\n '李鹹用',\n '劉得仁',\n '許棠',\n '李德裕',\n '李嘉佑',\n '李頎',\n '李紳',\n '駱賓王',\n '雍陶',\n '戎昱',\n '鄭谷',\n '劉商',\n '陳陶',\n '盧照鄰',\n '李涉',\n '呂岩',\n '蘇頲',\n '曹鄴',\n '呂溫',\n '劉滄',\n '張蠙',\n '崔塗',\n '項斯',\n '無可',\n '羊士諤',\n '周賀',\n '盧仝',\n '薛逢',\n '徐凝',\n '元結',\n '陳子昂',\n '李世民',\n '李建勳',\n '獨孤及',\n '王勃',\n '歐陽詹',\n '殷堯藩',\n '李山甫',\n '薛濤',\n '吳筠',\n '孫元晏',\n '劉駕',\n '劉兼',\n '郎士元',\n '顧非熊',\n '劉言史',\n '李郢',\n '嚴維',\n '章孝標',\n '崔道融',\n '王貞白',\n '李隆基',\n '喻鳧',\n '陳羽',\n '牟融',\n '楊衡',\n '孫逖',\n '汪遵',\n '裴夷直',\n '王周',\n '崔國輔',\n '常建',\n '令狐楚',\n '裴說',\n '於鵠',\n '于武陵',\n '段成式',\n '皇甫曾',\n '張繼',\n '高駢',\n '魚玄機',\n '武則天',\n '包佶',\n '崔顥',\n '崔峒',\n '王績',\n '李乂',\n '聶夷中',\n '賈至',\n '靈一',\n '杜審言',\n '曹唐',\n '張謂',\n '竇鞏',\n '譚用之',\n '楊凝',\n '儲嗣宗',\n '司馬紮',\n '李煜',\n '於濆',\n '秦韜玉',\n '虞世南',\n '秦系',\n '徐彥伯',\n '祖詠',\n '魏征',\n '孫光憲',\n '陸暢',\n '李遠',\n '李咸用',\n '唐求',\n '褚亮',\n '李昌符',\n '崔湜',\n '劉希夷',\n '高蟾',\n '楊炯',\n '姚鵠',\n '邵謁',\n '林寬',\n '尚顏',\n '李適',\n '王涯',\n '馮延巳',\n '張泌',\n '雍裕之',\n '翁承贊',\n '孟貫',\n '張仲素',\n '顏真卿',\n '熊孺登',\n '崔櫓',\n '裴度',\n '劉方平',\n '李百藥',\n '裴迪',\n '鄭巢',\n '盧肇',\n '來鵠',\n '蘇拯',\n '杜光庭',\n '許敬宗',\n '殷文圭',\n '劉憲',\n '朱放',\n '張南史',\n '劉叉',\n '劉威',\n '修睦',\n '歐陽炯',\n '盧象',\n '綦毋潛',\n '竇常',\n '沈亞之',\n '章碣',\n '鄭愔',\n '子蘭',\n '韓琮',\n '和凝',\n '周樸',\n '竇群',\n '朱灣',\n '於鄴',\n '喬知之',\n '長孫佐輔',\n '孫魴',\n '趙彥昭',\n '周繇',\n '伍喬',\n '清江',\n '毛文錫',\n '楊師道',\n '孟雲卿',\n '賀知章',\n '楊淩',\n '竇牟',\n '周朴',\n '陸希聲',\n '上官儀',\n '竇庠',\n '許彬',\n '成彥雄',\n '董思恭',\n '皇甫松',\n '蕭穎士',\n '包何',\n '楊憑',\n '李九齡',\n '胡宿',\n '李冶',\n '沈彬',\n '陶翰',\n '張子容',\n '郭震',\n '于鵠',\n '孟遲',\n '喻坦之',\n '任翻',\n '靈澈',\n '劉昚虛',\n '王翰',\n '王轂',\n '李珣',\n '崔融1',\n '趙冬曦',\n '張又新',\n '王初',\n '顧夐',\n '法振',\n '徐氏',\n '武平一',\n '梁鍠',\n '劉複',\n '朱景玄',\n '張賁',\n '廣宣',\n '棲白',\n '翁綬',\n '李華',\n '閻朝隱',\n '牛嶠',\n '蘇味道',\n '崔曙',\n '暢當',\n '張碧',\n '鄭畋',\n '褚載',\n '王仁裕',\n '劉昭禹',\n '蔣吉',\n '鄭遨',\n '虛中',\n '薛稷',\n '盧延讓',\n '崔日用',\n '莊南傑',\n '陳子良',\n '盧僎',\n '丘為',\n '李紓',\n '薛據',\n '王季友1',\n '丘丹',\n '盧殷',\n '楊發',\n '翁洮',\n '毛熙震',\n '丁仙芝',\n '馬懷素',\n '張諤',\n '徐安貞',\n '柳中庸',\n '薛存誠',\n '韋處厚',\n '陳去疾',\n '蔣防',\n '陳標',\n '薛瑩',\n '吳仁璧',\n '孔德紹',\n '楊夔',\n '護國',\n '棲蟾',\n '尹鶚',\n '徐堅',\n '于濆',\n '李廓',\n '鄭錫',\n '姚系',\n '王灣',\n '冷朝陽',\n '崔玨',\n '于鄴',\n '熊皎',\n '左偃',\n '水神',\n '袁暉',\n '王睿',\n '韋元旦',\n '盧鴻一',\n '常袞',\n '竇叔向',\n '李赤',\n '費冠卿',\n '韋蟾',\n '蔣貽恭',\n '可止',\n '李逢吉',\n '李約',\n '王縉',\n '萬楚',\n '李義府',\n '陳叔達',\n '武三思',\n '蕭至忠',\n '楊汝士',\n '崔涯',\n '歐陽袞',\n '李昭象',\n '盧士衡',\n '江為',\n '吳商浩',\n '處默',\n '李治',\n '姚崇',\n '孟簡',\n '韋承慶',\n '郎大家宋氏',\n '張文琮',\n '吳少微',\n '薛曜',\n '盧藏用',\n '包融',\n '陳潤',\n '鮑防',\n '張登',\n '李敬方',\n '顧雲',\n '孟賓於',\n '韓溉',\n '伊用昌',\n '薛昭蘊',\n '魏承班',\n '李顯',\n '李忱',\n '上官昭容',\n '鄭絪',\n '張袞',\n '張循之',\n '王無競',\n '王適',\n '厲玄',\n '薛奇童',\n '王諲',\n '張潮',\n '崔液',\n '張志和',\n '劉孝孫',\n '孔紹安',\n '宗楚客',\n '于季子',\n '韋嗣立',\n '賀朝',\n '蔣冽',\n '朱長文',\n '于良史',\n '陳翊',\n '崔元翰',\n '麹信陵',\n '李翱',\n '白行簡',\n '舒元輿',\n '霍總',\n '王駕',\n '錢珝',\n '劉象',\n '徐仲雅',\n '廖融',\n '史鳳',\n '閻選',\n '李昂1',\n '徐賢妃',\n '李衍',\n '賈曾',\n '牛僧孺',\n '李舒',\n '鄭世翼',\n '王之渙',\n '李暇',\n '張柬之',\n '李康成',\n '張彪',\n '田娥',\n '任希古',\n '宋璟',\n '張均',\n '岑羲',\n '胡皓',\n '張旭',\n '劉灣',\n '沈頌',\n '閻防',\n '嚴武',\n '章八元',\n '陳存',\n '崔護',\n '王起',\n '林滋',\n '李宣古',\n '鄭損',\n '李沇',\n '鄭准',\n '王岩',\n '馮道',\n '陳貺',\n '牛希濟',\n '詹敦仁',\n '王元',\n '張夫人',\n '張窈窕',\n '義淨',\n '歸仁',\n '可朋',\n '慕幽',\n '許堅2',\n '蜀宮群仙',\n '李貞白',\n '李璟',\n '段文昌',\n '張易之',\n '郭元振',\n '袁朗',\n '李嶷',\n '陸長源',\n '庾抱',\n '劉禕之',\n '徐晶',\n '李泌',\n '許景先',\n '蔡希寂',\n '殷遙',\n '王泠然',\n '崔興宗',\n '徐九皋',\n '閻寬',\n '于邵',\n '沈千運',\n '呂渭',\n '崔備',\n '徐敞',\n '張聿',\n '李正封',\n '鄭澣',\n '李程',\n '楊嗣複',\n '沈傳師',\n '周匡物',\n '袁不約',\n '楊乘',\n '趙璜',\n '潘鹹',\n '鄭綮',\n '歐陽玭',\n '公乘億',\n '盧汝弼',\n '楊凝式',\n '黃損',\n '韓熙載',\n '潘佑',\n '廖匡圖',\n '徐鍇',\n '許堅1',\n '湯悅',\n '吳越人',\n '李濤',\n '盧休',\n '李範',\n '晁采',\n '姚月華',\n '梁瓊',\n '趙鸞鸞',\n '慧淨',\n '隱巒',\n '雲台峰女仙',\n '陳季卿',\n '權龍褒',\n '文丙',\n '鮑君徽',\n '韓休',\n '郭子儀',\n '李回',\n '員半千',\n '許孟容',\n '崔邠',\n '趙光逢',\n '紀唐夫',\n '王偃',\n '辛弘智',\n '張紘',\n '韋渠牟',\n '岑文本',\n '陸敬',\n '楊浚',\n '劉允濟',\n '韓仲宣',\n '高瑾',\n '崔泰之',\n '魏知古',\n '王琚',\n '李迥秀',\n '趙彥伯',\n '源幹曜',\n '裴漼',\n '韋述',\n '劉庭琦',\n '張嘉貞',\n '席豫',\n '沈如筠',\n '李邕',\n '萬齊融',\n '蔣維翰',\n '孫昌胤',\n '張鼎',\n '馮著',\n '蔣渙',\n '元季川',\n '陸贄',\n '王烈',\n '奚賈',\n '謝良輔',\n '劉迥',\n '皇甫澈',\n '李吉甫',\n '李觀',\n '李絳',\n '姚康',\n '馬異',\n '裴次元',\n '王魯複',\n '李渤',\n '柳公權',\n '張蕭遠',\n '何希堯',\n '柳棠',\n '祝元膺',\n '王鐸',\n '李玖',\n '莫宣卿',\n '鄭愚',\n '袁郊',\n '蕭遘',\n '袁皓',\n '鄭仁表',\n '鄭璧',\n '溫憲',\n '孫偓',\n '路德延',\n '胡令能',\n '孫棨',\n '張為',\n '劉斌',\n '羅紹威',\n '宋齊丘',\n '廖凝',\n '李家明',\n '翁宏',\n '劉乙',\n '胡玢',\n '狄煥',\n '楊希道',\n '鄭鏦',\n '紇幹著',\n '周濆',\n '馬逢',\n '吉師老',\n '姚揆',\n '易思',\n '賈彥璋',\n '韓常侍',\n '陳甫',\n '卞震',\n '趙氏2',\n '薛馧',\n '張文姬',\n '步非煙',\n '孟氏',\n '崔萱',\n '崔仲容',\n '慧宣',\n '善生',\n '卿雲',\n '馬湘',\n '張辭',\n '沈廷瑞',\n '卓英英',\n '張元一',\n '李存勖',\n '鹿虔扆',\n '李亨',\n '錢鏐',\n '盧從願',\n '蔡孚',\n '盧懷慎',\n '劉晏',\n '鄭餘慶',\n '蕭仿',\n '馮伉',\n '賈馳',\n '鄭渥',\n '東方虯',\n '朱光弼',\n '杜頠',\n '齊浣',\n '張若虛',\n '李希仲',\n '賀蘭進明',\n '常理',\n '李景伯',\n '盧貞',\n '謝偃',\n '長孫無忌',\n '杜淹',\n '崔善為',\n '歐陽詢',\n '元萬頃',\n '陳元光',\n '崔知賢',\n '陳嘉言',\n '張敬忠',\n '張昌宗',\n '喬備',\n '尹懋',\n '李崇嗣',\n '韋安石',\n '李元紘',\n '王丘',\n '周瑀',\n '孫處玄',\n '徐延壽',\n '李憕',\n '李昂2',\n '李林甫',\n '陳希烈',\n '宋昱',\n '崔翹',\n '陸海',\n '沈宇',\n '張萬頃',\n '樓穎',\n '劉太真',\n '褚朝陽',\n '畢耀',\n '趙征明',\n '任華',\n '韓滉',\n '韋夏卿',\n '張眾甫',\n '丁澤',\n '王表',\n '何兆',\n '陸羽',\n '鄭常',\n '竇參',\n '韋皋',\n '崔子向',\n '柳公綽',\n '林藻',\n '張薦',\n '潘孟陽',\n '崔立之',\n '範傳正',\n '張賈',\n '張文規',\n '張匯',\n '陳通方',\n '皇甫湜',\n '盧拱',\n '劉猛',\n '葉季良',\n '湛賁',\n '周弘亮',\n '張仲方',\n '崔玄亮',\n '符載',\n '孫叔向',\n '劉皂',\n '林傑',\n '蔡京',\n '楊敬之',\n '陳至',\n '鄭還古',\n '朱晝',\n '滕邁',\n '李餘',\n '白敏中',\n '常楚老',\n '平曾',\n '魏扶',\n '楊收',\n '鄭史',\n '元晦',\n '黃頗',\n '劉綺莊',\n '楊牢',\n '潘緯',\n '武瓘',\n '李騭',\n '張孜',\n '趙鴻',\n '李縠',\n '顏萱',\n '顧在鎔',\n '王渙',\n '戴司顏',\n '孫合',\n '李琪',\n '盧頻',\n '鄭良士',\n '伍唐珪',\n '陳光',\n '捧劍僕',\n '黃巢',\n '羅袞',\n '鐘謨',\n '王感化',\n '馮涓',\n '楊玢',\n '詹琲',\n '張立',\n '蘇廣文',\n '尉遲匡',\n '繆島雲',\n '夏寶松',\n '庸仁傑',\n '李堯夫',\n '段義宗',\n '李舜弦',\n '王韞秀',\n '孫氏',\n '程長文',\n '崔鶯鶯',\n '劉雲',\n '張琰',\n '劉媛',\n '劉瑤',\n '廉氏',\n '關盼盼',\n '王福娘',\n '徐月英',\n '元淳',\n '寒山',\n '景雲',\n '法照',\n '知玄',\n '澹交',\n '若虛',\n '曇域',\n '幹康',\n '惟審',\n '許宣平',\n '李夢符',\n '張白',\n '眉娘',\n '上元夫人',\n '滕傳胤',\n '湘中蛟女',\n '龍女',\n '何光遠',\n '韋璜',\n '西施',\n '王軒',\n '劉行敏',\n '裴諝',\n '徐昌圖',\n '李旦',\n '李賢',\n '孟昶',\n '韓思複',\n '劉晃',\n '王晙',\n '崔玄童',\n '何鸞',\n '蔣挺',\n '源光裕',\n '姜皎',\n '薑晞',\n '夏侯孜',\n '張齊賢',\n '鄭善玉',\n '胡雄',\n '祝欽明',\n '陳京',\n '歸登',\n '杜羔',\n '張昭',\n '劉氏雲',\n '竇威',\n '歐陽瑾',\n '趙微明',\n '梁獻',\n '顧朝陽',\n '梁氏瓊',\n '吳燭',\n '張修之',\n '裴交泰',\n '嚴識玄',\n '張烜',\n '王沈',\n '柯崇',\n '鄒紹先',\n '虞羽客',\n '張熾',\n '王訓',\n '李章',\n '滕潛',\n '王珪',\n '杜正倫',\n '崔信明',\n '馬周',\n '張文恭',\n '李敬玄',\n '楊思玄',\n '杜易簡',\n '趙謙光',\n '張鷟',\n '魏元忠',\n '李懷遠',\n '蘇瑰',\n '高正臣',\n '高球',\n '弓嗣初',\n '長孫正隱',\n '周彥暉',\n '高嶠',\n '周思鈞',\n '崔日知',\n '楊廉',\n '張錫',\n '解琬',\n '蕭嵩',\n '陸堅',\n '李適之',\n '鄭繇',\n '蘇晉',\n '王光庭',\n '裴耀卿',\n '宋鼎',\n '張宣明',\n '蔡隱丘',\n '張翬',\n '談戭',\n '樊晃',\n '邢巨',\n '薛業',\n '袁瓘',\n '寇坦',\n '李休烈',\n '楊炎',\n '範朝',\n '張巡',\n '韋丹',\n '蕭昕',\n '楊諫',\n '趙良器',\n '郭良',\n '李收',\n '屈同仙',\n '豆盧複',\n '芮挺章',\n '陳季',\n '王邕',\n '李棲筠',\n '徐浩',\n '薛令之',\n '袁傪',\n '崔何',\n '王緯',\n '郭澹',\n '令狐峘',\n '蘇源明',\n '蘇渙',\n '韋建',\n '殷寅',\n '李岑2',\n '韋迢',\n '張濯',\n '姚倫',\n '張叔卿',\n '鄭丹',\n '張建封',\n '崔膺',\n '馮宿',\n '王武陵',\n '張佐',\n '閻濟美',\n '張少博',\n '周渭',\n '周存',\n '黎逢',\n '苗發',\n '衛象',\n '柳郴',\n '鄭概',\n '範燈',\n '樊珣',\n '劉蕃',\n '張松齡',\n '劉長川',\n '鄭審',\n '李幼卿',\n '羅讓',\n '李願',\n '蕭祜',\n '王良士',\n '顏粲',\n '張正元',\n '彭伉',\n '崔樞',\n '張嗣初',\n '許康佐',\n '楊于陵',\n '武少儀',\n '姚向',\n '溫會',\n '李敬伯',\n '郭遵',\n '許稷',\n '胡證',\n '席夔',\n '盧儲',\n '周元範',\n '王炎',\n '陳昌言',\n '李宣遠',\n '陳翥',\n '王播',\n '宋濟',\n '蘇郁',\n '蘇鬱',\n '於頔',\n '吳武陵',\n '封敖',\n '楊虞卿',\n '趙蕃',\n '唐扶',\n '侯冽',\n '李播',\n '滕倪',\n '劉虛白',\n '郭良驥',\n '柳泌',\n '朱沖和',\n '張光朝',\n '裴潾',\n ...]"
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import json\n",
    "with open('作者到整数转换表.json') as f:\n",
    "    j = json.load(f)\n",
    "    # print(j)\n",
    "    整数到作者转换表 = ['' for i in range(len(j))]\n",
    "    for (作者, 数字) in j.items():\n",
    "        整数到作者转换表[数字] = 作者\n",
    "整数到作者转换表"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "outputs": [
    {
     "ename": "NameError",
     "evalue": "name 'new_label' is not defined",
     "output_type": "error",
     "traceback": [
      "\u001B[1;31m---------------------------------------------------------------------------\u001B[0m",
      "\u001B[1;31mNameError\u001B[0m                                 Traceback (most recent call last)",
      "Input \u001B[1;32mIn [12]\u001B[0m, in \u001B[0;36m<cell line: 3>\u001B[1;34m()\u001B[0m\n\u001B[0;32m      1\u001B[0m \u001B[38;5;28;01mdef\u001B[39;00m \u001B[38;5;21mdecode_poet\u001B[39m(num):\n\u001B[0;32m      2\u001B[0m     \u001B[38;5;28;01mreturn\u001B[39;00m 整数到作者转换表[num]\n\u001B[1;32m----> 3\u001B[0m decode_poet(\u001B[43mnew_label\u001B[49m[\u001B[38;5;241m10\u001B[39m])\n",
      "\u001B[1;31mNameError\u001B[0m: name 'new_label' is not defined"
     ]
    }
   ],
   "source": [
    "def decode_poet(num):\n",
    "    return 整数到作者转换表[num]\n",
    "decode_poet(new_label[10])"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "outputs": [
    {
     "data": {
      "text/plain": "'秦川雄帝宅，函谷壯皇居。綺殿千尋起，離宮百雉餘。連薨遙接漢，飛觀迥淩虛。雲日隱層闕，風煙出綺疏。岩廊罷機務，崇文聊駐輦。玉匣啟龍圖，金繩披鳳篆。韋編斷仍續，縹帙舒還卷。對此乃淹留，欹案觀墳典。移步出詞林，停輿欣武宴。雕弓寫明月，駿馬疑流電。驚雁落虛弦，啼猿悲急箭。閱賞誠多美，於茲乃忘倦。鳴笳臨樂館，眺聽歡芳節。急管韻朱弦，清歌凝白雪。彩鳳肅來儀，玄鶴紛成列。去茲鄭衛聲，雅音方可悅。芳辰追逸趣，禁苑信多奇。橋形通漢上，峰勢接雲危。煙霞交隱映，花鳥自參差。何如肆轍跡，萬里賞瑤池。飛蓋去芳園，蘭橈遊翠渚。萍間日彩亂，荷處香風舉。桂楫滿中川，弦歌振長嶼。豈必汾河曲，方為歡宴所。落日雙闕昏，回輿九重暮。長煙散初碧，皎月澄輕素。搴幌玩琴書，開軒引雲霧。斜漢耿層閣，清風搖玉樹。歡樂難再逢，芳辰良可惜。玉酒泛雲罍，蘭殽陳綺席。千鐘合堯禹，百獸諧金石。得志重寸陰，忘懷輕尺璧。建章歡賞夕，二八盡妖妍。羅綺昭陽殿，芬芳玳瑁筵。佩移星正動，扇掩月初圓。無勞上懸圃，即此對神仙。以茲遊觀極，悠然獨長想。披卷覽前蹤，撫躬尋既往。望古茅茨約，瞻今蘭殿廣。人道惡高危，虛心戒盈蕩。奉天竭誠敬，臨民思惠養。納善察忠諫，明科慎刑賞。六五誠難繼，四三非易仰。廣待淳化敷，方嗣雲亭響。'"
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data = df[['content']].to_numpy() # 我觉得可以实验一下：单独使用标题的准确率和单独使用content的准确率，确定关系。\n",
    "label = df['author'].to_numpy()\n",
    "data[:5]\n",
    "decode_poetry(data[0][0])"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "慨然撫長劍，濟世豈邀名。星旗紛電舉，日羽肅天行。遍野屯萬騎，臨原駐五營。登山麾武節，背水縱神兵。在昔戎戈動，今來宇宙平。\n"
     ]
    },
    {
     "data": {
      "text/plain": "'李世民'"
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 再去掉非格律诗，或者就不超过56个字吧\n",
    "七言律诗长度 = 7*8+1*8\n",
    "assert(len(\"相见时难别亦难，东风无力百花残。春蚕到死丝方尽，蜡炬成灰泪始干。晓镜但愁云鬓改，夜吟应觉月光寒。蓬山此去无多路，青鸟殷勤为探看。\")==七言律诗长度)\n",
    "short_data = []\n",
    "short_data_label = []\n",
    "for i in range(len(data)):\n",
    "    s = decode_poetry(data[i][0])\n",
    "    if (len(s)<= 七言律诗长度):\n",
    "        short_data.append(data[i][0])\n",
    "        short_data_label.append(label[i])\n",
    "short_data[:5]\n",
    "print(decode_poetry(short_data[0]))\n",
    "decode_poet(short_data_label[0])"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "outputs": [],
   "source": [],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "outputs": [
    {
     "data": {
      "text/plain": "<AxesSubplot:ylabel='Frequency'>"
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "text/plain": "<Figure size 432x288 with 1 Axes>",
      "image/png": "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\n"
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "df2 = pd.DataFrame(short_data_label)\n",
    "df2.head()\n",
    "df2.describe()\n",
    "df2[0].plot.hist(bins=24, alpha=0.5)"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2035\n"
     ]
    },
    {
     "data": {
      "text/plain": "2156"
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from collections import Counter\n",
    "a = Counter(short_data_label)\n",
    "a = dict(a)\n",
    "# 一共两千多个(0-2631)诗人，有多少个写得诗少呢？\n",
    "c = 0\n",
    "# filter_value = 2 # 1429 居然有一半是诗人只传唱了一首诗？\n",
    "# filter_value = 20 # 2384\n",
    "# filter_value = 30 # 2434\n",
    "filter_value = 60 # 2498\n",
    "for 诗人 in set(short_data_label):\n",
    "    if a[诗人]<filter_value:\n",
    "        c+=1\n",
    "print(c)\n",
    "len(set(short_data_label))"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "outputs": [],
   "source": [
    "filter_values = range(3000)\n",
    "def get_more_than(filter_value):\n",
    "    c = 0\n",
    "    for 诗人 in set(short_data_label):\n",
    "        if a[诗人]>=filter_value:\n",
    "            c+=1\n",
    "    return c\n",
    "poets = list(map(get_more_than, filter_values))"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "outputs": [
    {
     "data": {
      "text/plain": "<Figure size 432x288 with 4 Axes>",
      "image/png": "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\n"
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "def draw(start = 0, step=5):\n",
    "    a, b = start, start+step\n",
    "    for plot_position in [221, 222, 223, 224]:\n",
    "        plt.subplot(plot_position)\n",
    "        plt.plot(filter_values[a:b], poets[a:b])\n",
    "        a, b = b, b+step\n",
    "draw(10, 150)"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "outputs": [
    {
     "data": {
      "text/plain": "<Figure size 432x288 with 4 Axes>",
      "image/png": "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\n"
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "draw(80, 20)"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "outputs": [
    {
     "data": {
      "text/plain": "49"
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "text/plain": "<Figure size 432x288 with 4 Axes>",
      "image/png": "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\n"
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "draw(80, 40)"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "outputs": [
    {
     "data": {
      "text/plain": "array([False, False, False, ..., False, False, False])"
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 去除掉不出名的诗人\n",
    "assert len(short_data)==len(short_data_label)\n",
    "is_famous = np.zeros(len(short_data_label))\n",
    "for i, 诗人 in enumerate(short_data_label):\n",
    "    if a[诗人]>150: #排名前60诗人\n",
    "        is_famous[i] = 1\n",
    "is_famous.astype(bool)\n",
    "# data, label = data[is_famous], label[is_famous] # 居然不行？"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[1306, 1306, 552, 409, 1241, 0, 28, 683, 24, 867, 498, 276, 108, 1, 468, 886, 49, 2220, 130, 49, 1384, 0, 81, 106, 132, 53, 307, 1727, 1430, 1, 964, 7, 602, 60, 97, 107, 3057, 0, 320, 67, 31, 2618, 111, 2337, 2337, 1, 129, 47, 1413, 83, 1247, 525, 2577, 0, 6, 49, 532, 1850, 43, 143, 1532, 1], [547, 3465, 4601, 0, 920, 5249, 2788, 0, 944, 944, 532, 1850, 3646, 525, 1698, 1, 1030, 69, 473, 4692, 152, 18, 80, 0, 1247, 504, 1069, 1069, 15, 800, 302, 0, 1519, 525, 1418, 141, 438, 144, 178, 1, 2868, 194, 276, 30, 129, 2220, 1704, 0]]\n"
     ]
    },
    {
     "data": {
      "text/plain": "[15, 45]"
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "new_data, new_label = [], []\n",
    "for i in range(len(short_data_label)):\n",
    "    if(is_famous[i]):\n",
    "        new_data.append(short_data[i])\n",
    "        new_label.append(short_data_label[i])\n",
    "assert len(new_data) == len(new_label)\n",
    "len(new_data)\n",
    "print(new_data[0:2])\n",
    "new_label[0:2]"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "outputs": [],
   "source": [
    "from sklearn.model_selection import train_test_split\n",
    "# train_x,test_x,train_y,test_y = train_test_split(data, label, test_size = 0.2,random_state = 32, stratify=label)\n",
    "train_x,test_x,train_y,test_y = train_test_split(new_data, new_label, test_size = 0.2,random_state = 32, stratify=new_label)"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "癡頑終日羨人閑，卻喜因官得近山。斜對寺樓分寂寂，文案把來看未會，雖書一字甚慚顏。\n",
      "王建\n"
     ]
    }
   ],
   "source": [
    "print(decode_poetry(test_x[0]))\n",
    "print(decode_poet(test_y[0]))"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "markdown",
   "source": [],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%% md\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "outputs": [],
   "source": [
    "import pickle\n",
    "with open (\"唐诗处理后数据集.pickle\", 'wb') as f: #打开文件\n",
    "    pickle.dump((train_x,test_x,train_y,test_y), f)"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 132,
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'numpy.ndarray'>\n",
      "object\n"
     ]
    },
    {
     "data": {
      "text/plain": "dtype('int32')"
     },
     "execution_count": 132,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "print(typ\n",
    "e(train_x))\n",
    "print(train_x.dtype)\n",
    "test_y.dtype"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "outputs": [],
   "source": [],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 133,
   "outputs": [],
   "source": [
    "np.savez('唐诗处理后数据集', train_x=train_x,test_x=test_x,train_y=train_y,test_y=test_y)"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  },
  {
   "cell_type": "code",
   "execution_count": 136,
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "['train_x', 'test_x', 'train_y', 'test_y']\n"
     ]
    },
    {
     "data": {
      "text/plain": "array([[list([1309, 1309, 186, 1309, 1309, 0, 1217, 1487, 27, 32, 1445, 1, 42, 97, 17, 194, 336, 0, 1187, 1149, 240, 456, 688, 1, 1071, 80, 1318, 1501, 250, 0, 428, 18, 287, 346, 1224, 1, 52, 852, 5, 427, 1173, 0, 127, 270, 864, 4, 965, 1])],\n       [list([87, 852, 265, 18, 29, 0, 1590, 568, 59, 27, 67, 1, 39, 22, 691, 7, 130, 0, 548, 120, 433, 156, 308, 1, 69, 337, 1885, 611, 194, 0, 56, 337, 1827, 1157, 736, 1, 66, 646, 91, 259, 1480, 0, 386, 646, 417, 156, 645, 1])],\n       [list([27, 32, 933, 1682, 182, 0, 1975, 2023, 469, 790, 2803, 1, 243, 465, 195, 367, 1341, 0, 43, 337, 177, 1023, 596, 1, 132, 752, 1515, 60, 238, 0, 794, 849, 672, 362, 655, 1, 403, 3250, 344, 394, 269, 0, 74, 282, 6, 2502, 95, 1])],\n       ...,\n       [list([1647, 363, 264, 0, 1647, 363, 264, 0, 161, 71, 1452, 2722, 178, 78, 675, 1, 94, 687, 909, 762, 439, 1633, 1633, 0, 182, 7, 2954, 108, 25, 15, 130, 0, 73, 1151, 421, 30, 259, 6, 157, 1, 260, 253, 268, 913, 683, 331, 925, 0, 567, 194, 74, 151, 231, 1146, 673, 0, 473, 869, 15, 571, 488, 238, 948, 1, 664, 1211, 350, 420, 524, 642, 545, 0, 128, 199, 71, 577, 27, 624, 1554, 0, 1239, 1277, 3133, 529, 308, 292, 301, 1, 798, 254, 73, 125, 88, 472, 234, 0, 1393, 125, 657, 321, 803, 69, 595, 0, 89, 58, 229, 107, 111, 179, 1602, 1, 919, 1156, 307, 389, 146, 7, 342, 0, 30, 111, 30, 84, 9, 2, 13, 0, 5, 79, 141, 7, 449, 255, 768, 1, 8, 703, 270, 116, 210, 444, 1429, 0, 214, 109, 26, 60, 507, 1269, 840, 0, 3209, 53, 320, 26, 26, 858, 1450, 1, 55, 246, 799, 2167, 40, 23, 2990, 0, 15, 7, 47, 0, 127, 626, 625, 1, 104, 475, 658, 534, 1191, 510, 571, 0, 1555, 327, 1647, 363, 1702, 925, 130, 1, 192, 119, 472, 234, 368, 30, 46, 0, 105, 188, 352, 35, 507, 2248, 3359, 1])],\n       [list([25, 880, 189, 111, 473, 647, 58, 0, 118, 35, 33, 670, 329, 153, 268, 1, 1409, 95, 386, 2247, 438, 46, 62, 0, 988, 112, 381, 1001, 105, 222, 614, 0, 386, 1099, 1273, 32, 463, 175, 158, 1])],\n       [list([224, 63, 37, 149, 438, 0, 1498, 726, 321, 747, 1504, 1, 668, 689, 212, 117, 1394, 0, 476, 385, 301, 6, 433, 1, 502, 121, 209, 99, 1235, 0, 104, 46, 297, 1137, 1373, 1, 151, 40, 81, 70, 32, 0, 252, 399, 52, 325, 1225, 1, 102, 19, 94, 233, 486, 0, 217, 36, 89, 12, 173, 1, 346, 608, 29, 19, 65, 0, 649, 3134, 630, 20, 276, 1, 6, 44, 105, 46, 7, 0, 248, 190, 1897, 3081, 2441, 1])]],\n      dtype=object)"
     },
     "execution_count": 136,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "with np.load('唐诗处理后数据集.npz', allow_pickle=True) as data:\n",
    "    print(data.files)\n",
    "    train_x,test_x,train_y,test_y = data['train_x'], data['test_x'], data['train_y'], data['test_y']\n",
    "train_x"
   ],
   "metadata": {
    "collapsed": false,
    "pycharm": {
     "name": "#%%\n"
    }
   }
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}